package cn.edu.neu.lab603.des

/** 任务执行监控器。
  * 监视器被设计为一种拦截器，可以在特定时间执行前、后触发。可以用于检测特定的事件，并检测特定事件带来的性能指标。
  *
  * @tparam T 仿真子类
  * @author Zhi &lt; yfwz100@163.com &gt;
  */
trait SimMonitor [T <: Simulation[T]] {

  /** 是否监听该任务的事件。
    *
    * @param context 执行上下文
    * @return 布尔值
    */
  def isMatch(context: T): Boolean

  /** 任务执行前执行的内容。
    *
    * @param context 执行上下文
    */
  def before(context: T)

  /** 任务执行后执行的内容。
    *
    * @param context 执行上下文
    */
  def after(context: T)
}
